1. Technical Field
The present invention relates in general to computer networks and in particular to network libraries utilized in network communications. Still more particularly, the present invention relates to a method, system and program product for extending and enhancing the available functionality of network libraries by using call-back mechanisms.
2. Description of the Related Art
Computer networks including local area networks (LANs), such as Ethernet, Token Ring and ARCnet, and wide area networks (WANs), such as the Internet, are commonly used today to interconnect computers and allow for direct communication and sharing of information and peripherals among dispersed computers.
As is well known in the art, transmission of data packets across networks is governed by a set of rules called xe2x80x9ctransport protocols.xe2x80x9d Network communications rely on network protocols to establish connections and perform transactions such as sending and receiving data. Presently many different transport protocols, such as Transmission Control Protocol (TCP) utilized for Internet communication, are available. Such transport protocols are often implemented by drivers, which can be loaded as network libraries on a computer system connected to the network.
Network libraries are pre-packaged software libraries, which are loaded onto a computer and used by the applications that require network support. Typically, the functions available with the network libraries are pre-set and cannot be easily modified or expanded to include additional functionality, which may be desired. For example, network communications can be enhanced by using encryption to enhance the security of the data being sent and received. A user may thus desire to augment his available network library functions with encryption. However, current network libraries, which do not provide encryption services, cannot be augmented once they have been purchased and installed. Because of the difficulty to physically modify each library stack to provide additional functionality, new network library applications, which include both the standard network library and the additional functional elements, must be purchased.
As networks become more dispersed and user networking needs change, the standard libraries become quickly outdated with respect to the provided network functionality. Cost and other factors prevent the complete replacement of network libraries, particularly since not every network (or user) has the same needs with regard to additional functional elements. There is presently no way to efficiently extend the present network libraries to include particular functional elements.
The present invention recognizes that it would therefore be desirable to have a method, system, and program for extending and/or enhancing the available functionality of network libraries. A method, system, and program which allow enhancement of network communication without re-coding the current network libraries or protocol stacks will be welcomed improvements. These and other benefits are provided in the present invention.
A method, system, and program is described that efficiently augments and enhances the functions of a network library with new functional elements. The method, system and program provide an extension utility, which contains a number of extended library services, such as security, reliability, availability, and serviceability (RAS), load balancing, snooping, and logging. The extended library services also include a general network monitoring function, by which a network connection is monitored, and the conditions reported back to the client. Also provided is a control utility, which places hooks related to one or more extended library services in the library processing code of the network protocol stack. During response to a network call, the hooks call back to and implement the particular extended library service(s). The corresponding extended library service is thus effectively added to the standard library services.
In a preferred embodiment, the control utility places the hooks within a call sequence based on a priority determination. Thus, all hooks are placed within the library processing code response relative to the time the standard library services is to be performed. Also, in another embodiment, a graphical user interfaces allows a user of the network connected computer system to select which extended library services to apply to network calls. The user may set or remove the extended library services and determine the relative time for implementing the extended library services.
The above as well as additional objects, features, and advantages of an illustrative embodiment will become apparent in the following detailed written description.